// 高阶函数-函数作为参数

// 模拟forEach
function forEach (arr, fn) {
  for (let i = 0; i < arr.length; i += 1) {
    fn(arr[i], i)
  }
}

const arr = [1, 3, 5, 7, 9]
// 测试forEach
// forEach(arr, function (item, index) {
//   console.log(item, index)
// })

// 模拟filter
function filter (arr, fn) {
  let results = [];
  for (let i = 0; i < arr.length; i += 1) {
    if (fn(arr[i])) {
      results.push(arr[i])
    }
  }
  return results
}

// 测试filter
const r = filter(arr, function (item) {
  return item % 3 === 0
})
console.log(r)
